// pages/send-youhui/send-youhui.js
const app = getApp();
let userInfo = app.globalData.userInfo;
const db = wx.cloud.database();
// 输入的文字内容
let content = '';
// 最大的选择图片的数量
const MAX_IMAGE_NUM = 9;
// 文本域输入文字最大的个数
const MAX_WORDS_NUM = 200;
let shopName = ''
let shopHeader = ''
let id =''
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 输入的文字个数
    wordsNum: 0,
    footerBottom: 0,
    images: [],
    selectPhoto: true, //添加图片的元素是否显示
    allAd:null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    id = options.id

    userInfo = wx.getStorageSync('user')
    this.selectShop()
    this.setData({
      allAd:app.globalData.ads.allAd
    })
  },
    // 监听输入框输入事件
    onInput(e) {
      let wordsNum = e.detail.value.length
      if (wordsNum >= MAX_WORDS_NUM) {
        wordsNum = `最大字数为${MAX_WORDS_NUM}`
      }
      this.setData({
        wordsNum
      })
      content = e.detail.value
    },
    // 获取焦点
    onFocs(e) {
      // 模拟器获取的键盘高度为0
      // 真机测试获取到的键盘高度333
      // console.log(e,'获取焦点')
      this.setData({
        footerBottom: e.detail.height
      })
  
    },
    // 失去焦点
    onBlur(e) {
      // console.log(e,'失去焦点')
      this.setData({
        footerBottom: 0
      })
  
    },
    // 选择图片
    onChooseImage() {
      // 还可以再选择几张图片
      let max = MAX_IMAGE_NUM - this.data.images.length
      wx.chooseImage({
        count: max,
        sizeType: ['original', 'compressed'],
        sourceType: ['album', 'camera'],
        success: res => {
          // tempFilePath可以作为img标签的src属性显示图片
          // const tempFilePaths = res.tempFilePaths
          this.setData({
            images: this.data.images.concat(res.tempFilePaths)
          })
          // 表示选择完以后还可以再选择几张图片
          max = MAX_IMAGE_NUM - this.data.images.length
          this.setData({
            selectPhoto: max <= 0 ? false : true
          })
        }
      })
    },
    // 删除图片
    onDelImage(e) {
      this.data.images.splice(e.currentTarget.dataset.index, 1)
      this.setData({
        images: this.data.images
      })
      if (this.data.images.length == MAX_IMAGE_NUM - 1) {
        this.setData({
          selectPhoto: true
        })
      }
    },
    // 放大显示图片
    onPreviewImage(e) {
      wx.previewImage({
        urls: this.data.images,
        current: e.target.dataset.imagesrc
      })
  
    },
      // 去数据库查询商家头像地址跟名称
    selectShop(){
      wx.cloud.callFunction({
        name:'getShop',
        data:{
          tag:'boss'
        }
      })
      .then(res => {
        let data = res.result[0]
        console.log(data,'boss数据获取成功')
        shopName = data.getName
        shopHeader=data.img1
      })
    },
    // 发 布
    send() {
      // 数据存储到数据库
      // 数据库:内容，图片fileID ，用户openid,昵称，头像，时间
      //  1.图片：上传到云存储 返回fileid 云文件ID
  
      // 判断用户输入的内容  content.trim()去掉空格
      if (content.trim() === '') {
        wx.showModal({
          cancelColor: 'cancelColor',
          title: '请输入文字内容',
          content: ''
        })
        return
      }
  
      wx.showLoading({
        title: '发 布中',
        mask: true
      })

      let promiseArr = []
      let fileIds = []
      // 图片上传
      for (let i = 0, len = this.data.images.length; i < len; i++) {
        let p = new Promise((resolve, reject) => {
  
          let item = this.data.images[i]
  
          // 文件扩展名
          let suffix = /\.\w+$/.exec(item)[0]
  
          wx.cloud.uploadFile({
              cloudPath: 'youhui/' + Date.now() + '-' + Math.random() * 10000000 + suffix,
              filePath: item,
            })
            .then(res => {
              // console.log(res, '上传图片成功回调')
              fileIds = fileIds.concat(res.fileID)
              resolve()
            })
            .catch(err => {
              console.log(err, '上传图片失败回调')
              reject()
            })
  
        })
        promiseArr.push(p)
      }
      console.log(shopName,'打印shopName')
      // 存入到云数据库
      Promise.all(promiseArr).then(res => {
        db.collection('youhui').add({
            data: {
              ...userInfo,
              content,
              nickName:shopName,
              avatarUrl:shopHeader,
              img: fileIds,
              createTime: db.serverDate(), //服务器端的时间
            }
          })
          .then(res => {
            wx.hideLoading()
            wx.showToast({
              title: '发 布成功',
            })
              // 给店铺插入一条isfuli 为true
              wx.cloud.callFunction({
                name:'myShop',
                data:{
                  tag:'update_isfuli',
                  id:id,
                  isfuli:true
                }
              }).then(res=>{
                console.log(res,"插入isfuli ok")
              }).catch(res=>{
                console.log(res,"插入isfuli fail")
              })
            // 跳转到福利页面，并且刷新
            wx.switchTab({
              url: '/pages/youhui/youhui?tag=shuaxin',
            })
           
          })
          .catch(err => {
            wx.hideLoading()
            wx.showToast({
              title: '发 布失败',
            })
          })
      })
    },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})